home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-07-01 | 40.3 KB | 1,314 lines |
-
- DOpusLhARexx Documentation
-
-
- Documentation for DOpusLhARexx 40.2
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Date: July 1, 1994
-
- © Copyright 1994 Nirvana Software
-
- Author: Geoff Seeley
-
-
- Overview - About the archive.
- What's New? - Changes from the last release.
- Installation - Setting up on your system.
- Operation - Using the scripts.
- Copyrights - Important information.
- Acknowledgments - Who made it possible.
- Known Bugs - What doesn't work.
- Program History - What was done to fix the above :-)
- The Furture - What I would like to do.
-
-
-
- Preface
-
-
- Preface
- ~~~~~~~
-
- DOpusLhARexx is a set of ARexx scripts for Directory Opus that will allow
- you to view LhA archive files in a DOpus window and extract, delete, add,
- view and print one or more files to/from the archive.
-
- The DOpusLhARexx programs were developed and tested using the following
- programs and libraries. Your mileage may vary with other versions....
-
- LhA v1.38
- Directory Opus v4.11
- rexxsupport.library v34.9
-
-
-
- What's New
-
-
- Changes from Release 40.1
- ~~~~~~~~~~~~~~~~~~~~~~~~~
-
- Enhancements
- ~~~~~~~~~~~~
-
- - Increased speed!!
-
- - Added script to view file(s) from an LhA archive
-
- - Added script to print file(s) from an LhA archive
-
- - Double click on a file to view
-
- - Click-m-Click extraction of files
-
- - Restore or ignore full pathnames in archive
-
- - Ability to preserve existing files upon extraction
-
- - Directory Opus format help file for scripts
-
- - Proper pattern matching in file selection
-
-
- Bug Fixes
- ~~~~~~~~~
-
- - Fixed problems with rexxsupport.library when it's not installed in
- the ARexx search path.
-
- - Fixed problems with names containing spaces.
-
-
-
- Copyrights
-
-
- Copyrights
- ~~~~~~~~~~
-
- The code within DOpusLhARexx is freely distributable and may not be
- sold for profit, however the code remains:
-
- Copyrighted © 1994 (All rights reserved)
- by Nirvana Software and Geoff Seeley.
-
- DOpusLhARexx may be included in public domain libraries such as Fred
- Fish's "Amiga Freely Redistributable Library" as long as no profit
- is made from these programs and no files in the archive are modified
- in any way.
-
- DOpusLhARexx may also be included on the AmiNet CD-ROM. (As long as
- I get my free copy :-)
-
- If you *must* make improvements to these programs, please, either send
- them to me for inclusion in a future release, or at least upload them
- to your nearest AmiNet archive site so that the Amiga community can
- benefit and enjoy.
-
- No warrantees are expressed or implied for these programs. Use them at
- your own risk.
-
- Directory Opus is copyrighted by Jonathan Potter and sold by
- Inovatronics, Inc.
-
- ARexx is a trademark of the Wishful Thinking Developement Corp. and
- William S. Hawes.
-
- LhA is copyrighted by Stefan Boberg.
-
- AmigaGuide, Commodore's Installer and Workbench are copyrighted trademarks
- of Commodore-Amiga, Inc.
-
-
-
- Acknowledgements
-
-
- Acknowledgements
- ~~~~~~~~~~~~~~~~
-
- The following people and groups made these programs possible.
-
- Thanks go to:
-
-
- Jonathan Potter for creating the indispensable Directory Opus program.
-
- Bill Hawes for implementing Rexx for the Amiga, and Commodore for
- including it into the OS.
-
- Billy Gates and MicroSoft for creating DOS6, Windows, Word, Excel, etc.
- which convince me each and every work day that the Commodore Amiga is
- *the* one and *only* platform to program/use...
-
- The Vancouver Canucks hockey team for providing me with exciting
- 1994 Stanley Cup play-off action to watch while updating these boring
- documents. Go Canucks!
-
- Pink Floyd for a *wonderful* concert in Vancouver...
-
-
- Thanks to the following people for feedback and/or bug reports:
-
-
- Amnon Itamar Govrin s2543587@techst02.techion.ac.il
- Henning Sauer H.SAUER@BIONIC.zer.de
- Bastiau Kinne a09j@zfn.uni.bremen.de
- Wolfgang Brodowski BRODY@CHEEZY.AWORD.DE
- Walter Dees walterd@stack.urc.tue.nl
- Reto Thoma Reto_Thoma@p2.817.chg.imp.com
- Micheal Barsoom mbars@bluejay.creighton.edu
- Bill Leath(?) bleath@BIX.com
- Lothar Mai Hiedermotzing, Germany
-
-
- Any anybody else I may have missed. (Sorry). Thanks!
-
-
-
- Installation
-
-
- Installation
- ~~~~~~~~~~~~
-
- Sorry, no Commodore Installer script. You have to install this by hand.
- Please read this whole section before starting the installation process.
-
- The DOpusLhARexx archive should contain the following files:
-
-
- .Product-Info
- DOpusLhARexx.readme
- DOpusLhARexx/Docs/DOpusLhARexx.guide
- DOpusLhARexx/Docs/DOpusLhARexx.doc
- DOpusLhARexx/Docs/DOpusLhARexx.HLP
- DOpusLhARexx/ARexx/ListLhA.rexx
- DOpusLhARexx/ARexx/GetSizesLhA.rexx
- DOpusLhARexx/ARexx/ExtractFilesLhA.rexx
- DOpusLhARexx/ARexx/SelectFilesLhA.rexx
- DOpusLhARexx/ARexx/DelFilesLhA.rexx
- DOpusLhARexx/ARexx/AddFilesLhA.rexx
- DOpusLhARexx/ARexx/RestoreLhADir.rexx
- DOpusLhARexx/ARexx/ViewLhAFile.rexx
- DOpusLhARexx/ARexx/PrintLhAFiles.rexx
- DOpusLhARexx/ARexx/LhaHandler.rexx
- DOpusLhARexx/ARexx/StopLhAHandler.rexx
- DOpusLhARexx/s/DirectoryOpus.CFG
- DOpusLhARexx/s/DirectoryOpus.CLA
-
-
- Step 1: Installing the files
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- I would suggest that you create a subdirectory in DOpus: called "ARexx"
- and place the *.rexx files in this directory. Alternatively, you can
- place them into REXX: or even S:. Be sure the set the 'S' (script) bit
- on the *.rexx files using the C:Protect command.
-
-
- Make sure you have the assign T: setup and pointing to a location with
- some free space for temporary files. By default, all the scripts use
- T: to store file lists and other temporary files although you may change
- this when configuring the scripts to your setup. (See below)
-
-
- In addition, you should make sure that rexxsupport.library is installed
- in LIBS: as the scripts require a few functions from this library.
-
-
- Step 2: Configuring Directory Opus
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- Start up DOpus and go into the configuration editor.
-
- Select the "Buttons" editor.
-
- Create new buttons with the following characterisics:
-
- Name Cmd Type Command
- ~~~~ ~~~~~~~~ ~~~~~~~
- ListLhA ARexx DOpus:ARexx/ListLhA.rexx
- GetSizesLhA ARexx DOpus:ARexx/GetSizesLhA.rexx
- ExtLhaFiles ARexx DOpus:ARexx/ExtractFilesLhA.rexx
- SelectFilesLhA ARexx DOpus:ARexx/SelectFilesLhA.rexx
- DelFilesLhA ARexx DOpus:ARexx/DelFilesLhA.rexx
- AddFilesLhA ARexx DOpus:ARexx/AddFilesLhA.rexx
- RestoreLhADir ARexx DOpus:ARexx/RestoreLhADir.rexx
- ViewLhAFile ARexx DOpus:ARexx/ViewLhAFile.rexx
- PrintLhAFiles ARexx DOpus:ARexx/PrintLhAFiles.rexx
-
- All of these buttons should have no flags set and the default stack,
- priority and close delay values. (Consult the DOpus manual under the
- section "3.5 BUTTONS/EDITOR" if you don't understand what the above
- means)
-
-
- Next, go into the "Menus" editor and add a new menu with the following
- sub-items: (See section "3.15 MENUS/MANAGER" in the DOpus manual)
-
- Menu Title: Lha Options
-
- Sub Item: Restore LhA Paths
- Commands: AmigaDOS Setenv LHAREXX_EXT_OPTS "-x x "
- Command Notify Now Restoring LhA Paths...
- Flags: None
-
- Sub Item: Ignore LhA Paths~
- Commands: AmigaDOS Setenv LHAREXX_EXT_OPTS "-x0 e "
- Command Notify Now Ignoring LhA paths...
- Flags: None
-
- Sub Item: Overwrite Existing Files
- Commands: AmigaDOS Setenv LHAREXX_OVR_OPTS "-m "
- Command Notify Overwrite Existing Files On...
- Flags: None
-
- Sub Item: Keep Existing Files~
- Commands: AmigaDOS Setenv LHAREXX_OVR_OPTS "-m0 "
- Command Notify Existing Files Will Be Kept...
- Flags: None
-
- Sub Item: Start LhA Handler
- Commands: AmigaDOS Run RX DOpus:ARexx/LhaHandler.rexx
- Flags: Output Window
- Run asynchronously
- Workbench to front
-
- Sub Item: Stop LhA Handler
- Commands: AmigaDOS Run RX DOpus:ARexx/StopLhaHandler.rexx
- Flags: Output Window
- Run asynchronously
- Workbench to front
-
- (NOTE: The tildes (~) and extras spaces above ARE significate)
-
-
- Step 3: Configuring the Scripts to your Setup
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- Fire up your favorite text editor and modify the *.rexx files listed
- above to conform to your system setup. You will only need to modify
- a few variables near the top of each file in the "configuration
- variables section".
-
-
- Step 4: Double-Click/Click-M-Click Support (OPTIONAL)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- If you wish to have the ability to extract files with click-m-click
- or the ability to view a file via a double-click, you will have to
- install the custom handler script. The custom handler consists of
- two scripts:
-
- LhaHandler
- StopLhAHandler
-
- I had originally planned to use DOpus' System/Startup ARexx script
- configuration option to run the custom handler upon startup of DOpus
- and this does in fact work, however, the problem is when you attempt
- to exit DOpus, DOpus waits for the handler script to finish (which it
- doesn't unless it gets the command to do so). The StopLhAHandler
- script will send the "quit" command to the custom handler which will
- stop it.
-
- The best way to install and run the custom handler that I've found is
- to Run it as a background task at boot time. Add a line to your
- S:User-Startup (or S:Startup-Sequence) that does the following command:
-
-
- Run RX DOpus:ARexx/LhaHandler.rexx >NIL:
-
-
- The ListLhA script looks for the custom handler script's port when
- listing the archive and will instruct DOpus to pass click-m-click/
- double clicks to the custom handler if the port exists.
-
-
- If your destination window is full and you use click-m-click to extract
- a file, you'll notice that, undoubtedly, a file in the destination window
- will be highlighted. If this bothers you, I suggest that you use
- click-hold-drag (same as click-m-click) to extract the file. Click on
- the file and hold the button, then drag the file horizontally into the
- destination window.
-
-
- Step 5: Help File (OPTIONAL)
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- If you wish to install DOpus style help for the new buttons and menu items,
- you must edit the DOpus help file:
-
- DOpus:s/DirectoryOpus.HLP
-
- and add the contents of the DOpusLhARexx.HLP file to this file either at
- the start or the end of the file.
-
-
- Sample Configuration
- ~~~~~~~~~~~~~~~~~~~~
-
- I've included a copy of my DOpus configuration files in the s/ subdirectory
- which you may load into ConfigOpus module via the "Configure->Open" menu.
-
- *** BE CAREFUL NOT TO SAVE THIS CONFIGURATION OVER YOUR PREVIOUS ***
- *** CONFIGURATION. YOU HAVE BEEN WARNED. ***
-
-
-
- rexxsupport.library
-
-
- rexxsupport.library
- ~~~~~~~~~~~~~~~~~~~
-
- Is an external shared library distributed with ARexx and should already
- be installed in your LIBS: directory. Consult your ARexx documentation
- if rexxsupport.library is not already installed on your system.
-
-
-
- ListLhA
-
-
- ListLhA
- ~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The ListLhA script allows the user to list an LhA archive in a buffer
- window.
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- Move into the directory containing the LhA archive you wish to list.
-
- Select an LhA file (only the first selected file is looked at)
-
- Click on the "ListLhA" button.
-
- If the selected file is indeed an LhA archive, the buffer window will clear
- and the archive will be listed in the window.
-
-
- Notes
- ~~~~~
-
- The buffer window will display the total size of all the files in the LhA
- archive and well as the number of files at the bottom of the buffer window
- (These two entries are un-selectable).
-
- If LhA detects a corrupt file within the archive, ListLhA with put up a
- requester during the file list parsing which displays the name of the
- file in question as well as the error message from LhA.
-
-
-
- GetSizesLhA
-
-
- GetSizesLhA
- ~~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The GetSizesLhA script will do a byte count (total) on the files currently
- selected in an LhA archive window. (Much like the DOpus equivalent of
- the "GetSizes" button)
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- Select the file(s) you wish to total in an LhA archive buffer window.
-
- Click on the "GetSizesLhA" button.
-
- You should then see the total byte/file count listed in the status bar.
-
-
-
- ExtLhaFiles
-
-
- ExtLhaFiles
- ~~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The ExtLhaFiles script will extract one or more files from an LhA archive
- window into the destination window.
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- Select the file(s) you wish to extract in the LhA archive buffer window.
-
- Click on the "ExtLhaFiles" button.
-
- The script will then extract the selected file(s) to the destination
- window.
-
-
- Extraction Options:
- ~~~~~~~~~~~~~~~~~~~
-
- The ExtLhaFiles script will use the environment variables set using the
- Menu Options to allow restoring/ignoring of full pathnames and also
- auto-overwriting/confirming overwriting of existing files.
-
- If, during extraction, LhA requires input from the user to confirm an
- action such as overwriting a file, an LhA_Input window will appear
- below the LhA_Output window. See the LhA Issues section for information
- on using these windows.
-
- See the Known Bugs section for problems relating to these extraction
- options.
-
-
-
- SelectFilesLhA
-
-
- SelectFilesLhA
- ~~~~~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The SelectFilesLhA script will allow the user to select file(s) in the
- archive window via a search pattern.
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- Click on the "SelectFilesLhA" button.
-
- A requester will appear asking you for a pattern to match on. Type in
- a string that will match all the files you want to select. You may
- include AmigaDOS wildcards in the pattern (~,*,#?,[],etc).
-
- All files which match the pattern will be selected. Additionally, the
- GetSizesLhA script will be called and the byte count (total) of the
- selected files will appear in the status bar.
-
-
- Notes
- ~~~~~
-
- In addition, the following special patterns perform the following
- functions:
-
- "*" - Select ALL files
- "~" - Toggle selection state of files (a selected file is unselected
- and vice versa)
- "" - De-select ALL files
-
-
-
- DelFilesLhA
-
-
- DelFilesLhA
- ~~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The DelFilesLhA script will delete the selected file(s) from an archive
- window.
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- Select the file(s) you wish to delete from the LhA archive.
-
- Click on the "DelFilesLhA" button.
-
- A confirmation requester will appear giving you the chance to abort the
- operation. (Once the files are deleted you CANNOT get them back)
-
- After the files have been deleted from the LhA archive, the buffer
- window will be updated by calling the ListLhA script.
-
- If you have deleted ALL the files in the LhA archive, you will be asked
- if you wish to delete the LhA archive. Selecting yes will delete the
- archive and load the original directory back into the window. If you
- choose no, the LhA buffer is left alone and you may add files into the
- empty archive via the "AddFilesLhA" button.
-
-
- Notes
- ~~~~~
-
- The DelFilesLha script will prompt the user for confirmation if any of
- the selected files are actually directory entries. Deleting a directory
- within an LhA archive, also deletes ALL directories and files in/under
- that directory. BE AWARE OF THIS!
-
-
-
- AddFilesLhA
-
-
- AddFilesLhA
- ~~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The AddFilesLhA script allows the user to add one or more files to an
- LhA archive.
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- List an LhA archive you want to add files into.
-
- In the destination window, select the files and/or directories you wish
- to add into the archive.
-
- Click on the "AddFilesLhA" button.
-
- A requester will appear asking you if you wish to store the pathnames of
- the files to be added. Selecting yes will store the paths relative to
- the source directory you have listed in the source window. Selecting
- no will ignore the paths and store the files into the archive as if they
- appeared in one directory.
-
- A second requester will then appear asking you if you wish to add any
- possible sub-directories. If you have selected a directory in the
- source window and you say yes to this requester, LhA will also
- recursively add any files/directories contained within the directorie(s)
- you have selected. Selecting no will only add files contained in the
- selected directorie(s) but no sub-directories below that.
-
- The files will be added to the LhA archive and the buffer window will be
- updated by calling the ListLha script.
-
-
- Notes
- ~~~~~
-
- Adding possible subdirectories automatically stores the full path names
- in the archive.
-
- If you click on the "AddFilesLhA" button with no LhA archive listed, a
- requester will appear asking you if you wish to create a new LhA archive.
- Selecting yes will bring up a second requester asking you for a filename
- for the new archive. Enter a filename (with or without the ".lha"
- extension, but excluding the path) noting that the archive will be created
- in the in-active directory window. (The path where the archive is to be
- created is listed in the requester)
-
-
-
- RestoreLhADir
-
-
- RestoreLhADir
- ~~~~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The RestoreLhADir script will re-read the directory containing the current
- LhA archive listed into the buffer window. After the directory has been
- re-scanned, the LhA archive file is re-highlighted.
-
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- Click on the "RestoreLhADir" button.
-
- The directory containing the LhA archive will be read into the buffer
- window.
-
-
- Notes
- ~~~~~
-
- The LhA archive which was previously listed in the buffer will then be
- auto-selected in the directory window.
-
-
-
- ViewLhAFile
-
-
- ViewLhAFile
- ~~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The ViewLhAFile script will extract and view the selected file(s) using an
- approriate viewer.
-
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- Select the files you wish to view.
-
- Click on the "ViewLhAFile" button.
-
- Each selected file will be extracted from the archive and viewed with one
- of the configured viewers based on the extension of the filename. (ie. a
- file ending in .GIF will be viewed using the GIFViewer command)
-
- If the extension on the filename is not known, the file will be viewed
- using a default viewer.
-
-
- Notes
- ~~~~~
-
- The following file extensions are recognized:
-
- Type Extension(s)
- ~~~~ ~~~~~~~~~~~~
- Text .doc .readme .man .text .txt .me
- IFF ILBM .iff .ham .pic .brush
- Jpeg .jpg .jpeg .jfif
- Gif .gif .jif
- Icon .info
- 8svx Sound .snd .8svx
- IFF Anim .anim
- Mpeg Movie .mpeg .mpg
-
-
- If the file is not recognized, it will be shown using the default viewer,
- I suggest that you use a viewer such as xMore as the default viewer as
- xMore will display a text file as text and a binary file as a hex dump.
-
- The ViewLhAFile only looks at the filename to determine it's type, it does
- NOT use DOpus' file class function. This may be implemented in a future
- version.
-
-
-
- PrintLhAFiles
-
-
- PrintLhAFiles
- ~~~~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The PrintLhAFiles script will extract and print the selected file(s) using
- the DOpus printing function.
-
- In addition, the contents of the LhA buffer window (archive contents) can
- also be printed via the DOpus PrintDir function.
-
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- Select the files you wish to view.
-
- Click on the "PrintLhAFiles" button.
-
- A requester will appear asking you if you wish to print the buffer window
- or the selected files. Selecting the "Buffer" button will call the DOpus
- PrintDir function (See section "2.5 Print Dir Requester" in the DOpus
- manual). If you select "Files", then the following action takes place.
-
- Each selected file will be extracted from the archive and the DOpus
- print requester will pop up to allow you to select your favorite printing
- options. (See section "2.6 Print Requester" in the DOpus manual).
-
-
- Notes
- ~~~~~
-
- If you don't have any files selected, you will be asked if you want to
- print the buffer window contents.
-
-
-
- LhaHandler
-
-
- LhaHandler
- ~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The LhaHandler script in a custom handler routine that will allow
- click-m-click extraction of files and double-click viewing of files
- in an LhA buffer window.
-
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- The LhaHandler normally runs as a separate process (See Installation
- for details on setting up the handler) and opens an AmigaDOS port for
- receiving messages from DOpus. If this port is active when the user
- lists an archive in a directory window, DOpus is instructed to pass
- click-m-click and double-click messages to the port. The LhaHandler will
- then perform the corresponding action.
-
-
-
- StopLhAHandler
-
-
- StopLhAHandler
- ~~~~~~~~~~~~~~
-
- What it does:
- ~~~~~~~~~~~~~
-
- The StopLhAHandler script can be used to shut down the LhaHandler custom
- handler.
-
- How to use it:
- ~~~~~~~~~~~~~~
-
- Selecting the "Stop LhA Handler" menu item or running the
- StopLhAHandler.rexx script from the CLI with "rx" will send a QUIT
- message to the port of the LhaHandler.
-
-
- Notes
- ~~~~~
-
- Stopping the LhaHandler while a current LhA buffer window is listed
- will cause DOpus to pop up a requester complaining about a missing port
- if you attempt to click-m-click or double click on a file in the LhA
- buffer window. (the buffer window is still attached to the handlers port)
-
-
-
- Menu Options
-
-
- Menu Options
- ~~~~~~~~~~~~
-
- Restore LhA Paths
- ~~~~~~~~~~~~~~~~~
-
- Selecting this menu option will set the environment variable used by the
- ExtLhAFiles and the LhaHandler scripts to tell LhA to restore the full
- pathname of the extracted file(s).
-
-
- Ignore LhA Paths
- ~~~~~~~~~~~~~~~~
-
- Selecting this menu option will set the environment variable used by the
- ExtLhAFiles and the LhaHandler scripts to tell LhA to ignore the full
- pathname of the extracted file(s).
-
-
- Overwrite Existing Files
- ~~~~~~~~~~~~~~~~~~~~~~~~
-
- Selecting this menu option will set the environment variable used by the
- ExtLhAFiles and the LhaHandler scripts to tell LhA to automatically
- overwrite files with the same name when extracting file(s).
-
-
- Keep Existing Files
- ~~~~~~~~~~~~~~~~~~~
-
- Selecting this menu option will set the environment variable used by the
- ExtLhAFiles and the LhaHandler scripts to tell LhA to prompt the user
- before overwriting files with the same name when extracting file(s).
-
-
- Start LhA Handler
- ~~~~~~~~~~~~~~~~~
-
- Selecting this menu option will start the custom handler as a background
- task if it is not already running.
-
-
- Stop LhA Handler
- ~~~~~~~~~~~~~~~~
-
- Selecting this menu option will stop the custom handler running in the
- background.
-
-
-
- Using The Scripts
-
-
- Action Scripts
- ~~~~~~~~~~~~~~
-
- ListLhA - Listing an LhA archive
- GetSizesLhA - Totaling selected files
- ExtLhaFiles - Extracting selected files
- SelectFilesLhA - Selecting file via a pattern
- DelFilesLhA - Deleting selected files
- AddFilesLhA - Adding selected files
- RestoreLhADir - Restoring parent directory
- ViewLhAFile - Viewing selected files
- PrintLhAFiles - Printing selected files
-
- Utility Scripts
- ~~~~~~~~~~~~~~~
-
- LhaHandler - Custom buffer handler
- StopLhAHandler - Stopping the handler
-
- Menu Items
- ~~~~~~~~~~
-
- Restore LhA Paths - Make LhA restore full pathnames
- Ignore LhA Paths - Make LhA ignore pathnames
- Overwrite Existing Files - Make LhA auto-overwrite files
- Keep Existing Files - Make LhA confirm overwrites
- Start LhA Handler - Start custom handler
- Stop LhA Handler - Stop custom handler
-
-
-
- Bugs
-
-
- Known Bugs
- ~~~~~~~~~~
-
- If you find a problem, please tell me about it (See Author), and I'll
- try to fix it ASAP. Please feel free to send in your suggestions for
- enhancements as well...
-
- 1) None of the scripts which modify the LhA archive (add/delete) check
- the permissions of the archive file to check if it's writable
-
-
- Limitations & Quirks
- ~~~~~~~~~~~~~~~~~~~~
-
- DOpus (at this time) only allows file entries of 256 characters. This of
- course limits the scripts to LhA archives with pathnames of about 246
- characters in length.
-
- LhA has path limits similar to those of DOpus as well.
-
- When ignoring pathname restoration during file extraction, LhA will attempt
- to extract ALL files in the archive with the same name as one of the
- selected files (regardless of whether the other file(s) are selected or
- not). If you have the overwrite existing files option turned off, you
- may selectively choose the correct files to extract as the files are
- extracted in the order they are listed in the buffer window.
-
- LhA archives containing auto-display files (.displayme) will display the
- .displayme file on the Workbench screen and not the DOpus screen. If it
- appears as if LhA has "frozen" during the extraction process, flip the
- Workbench screen to the front to check for and cancel the .displayme
- file. Additionally, you can add an option (-M) to LhA's global options
- environment variable (ENV:LHAOPTS) to make LhA ignore all .displayme
- files.
-
-
-
- History
-
-
-
- ListLhA.rexx
- ~~~~~~~~~~~~
-
- 40.1 - initial quick hack, only displayed files.
-
- 40.2 - found bug, was bitten by ARexx quoting so spaces in file names
- screwed up.
- - added true file size in display after figuring out problem above.
- - added two unselectable total entries for new companion script
- GetSizesLhA.rexx.
- - improved messages to user showing just what the hell is going on. :-)
-
- 40.3 - added check to ignore file comments in archive.
- - added check to make sure file entry is less than 256 chars.
- (DOpus limit)
-
- 40.4 - added code so that DelFilesLhA and AddFilesLhA could call ListLhA
- to update the window as it would be tricky for DelFilesLhA and
- AddFilesLhA to do this.
-
- 40.5 - added code to set the ADDRESS to DOpus if the script was called
- from someplace else, namely, DelFilesLhA and AddFilesLhA.
- - bug fix. DOpus will only allow 30 characters in the window title,
- I was storing the path AND LhA filename in there (which is fine
- if your lha files are in a top level directory). To fix this,
- I changed the code to store only the LhA filename in the window
- title and added some code to store the path to the LhA archive
- within the directory window itself. By playing with the display
- pens, this entry is "invisible" to the user.
- - added new function Quote() for dealing with filenames containing
- spaces.
-
- Release 40.2
- ------------
-
- 40.6 - bug fix: added rexxsupport.library via ADDLIB() Thanks to Michael
- Barsoom for reporting this bug.
- - bug fix: added quotes around archive pathname for device names
- with spaces in them. Thanks to Reto Thoma for reporting this.
- - added code to catch and display error messages from LHA.
-
-
- GetSizesLhA.rexx
- ~~~~~~~~~~~~~~~~
-
- 40.1 - initial version.
- - tried to mimic DOpus 'GetSizes' button.
-
- 40.2 - adjusted index calculations due to new info in the footer of the
- directory window.
-
- Release 40.2
- ------------
-
- 40.3 - removed ScrollToShow for speed.
- - added IsLhaFile() function to script.
- - added code to check other window for LhA buffer, if current
- window isn't.
- - bug fix: added -1 (current window) to all 'Status' calls.
-
-
- ExtractFilesLhA.rexx
- ~~~~~~~~~~~~~~~~~~~~
-
- 40.1 - initial hack after playing with AddCustHandler (gave up...
- for now at least :-) The problem? Well, AddCustHandler passes
- some arguments, but not quite enough info to be able to extract
- files from the archive. I could get the information I need from
- DOpus itself, however AddCustHandler is 'blocking' DOpus.
- (ie. DOpus won't respond to ARexx as it's waiting for the
- AddCustHandler script to end/return) If I can find a clean way
- of using AddCustHandler for Click-M-Click extraction, I'll update
- the archive.
-
- 40.2 - added code to allow extracting of all selected files at one time,
- instead of having to open a CON:/LhA for each file. Left original
- code in there for users who like that method. :-)
- - improved messages to user.
- - added check to see if there is a valid destination path.
-
- 40.3 - added code to set the ADDRESS to DOpus in case DOpus didn't invoke
- the script.
-
- 40.4 - changed code to get the path to the LhA archive from the directory
- window.
-
- 40.5 - added TopText call and moved "Busy on" call before requester.
-
- 40.6 - bug fixes. added missing quotes and parameters for Status calls.
-
- 40.7 - found out that LhA doesn't like certain characters in the file names
- it uses to extract. Added function to change these to wildcards.
-
- 40.8 - added code to check the other window if no LhA buffer found in
- current window.
-
- Release 40.2
- ------------
-
- 40.9 - added quotes around DestinationPath for those people having spaces
- in their filenames.
- - removed ExtractEachFile function in the sake of speed (nobody used
- this, right? thought so...)
- - added code to call ListLha script if user has only selected the
- archive but not listed it yet.
- - added code to extract all files if none are selected. User must
- comfirm this action.
- - added code to handle case where only an archive file has been
- selected, but not listed.
- - added code to use new extraction options.
- - added code to allow input to the LhA program to confirm actions
- such as overwriting.
- - bug fix: added quotes to filename when extracting without restoring
- the full path to allow filenames with spaces.
- - added Quote() and StripQuotes() functions. changed code to use them.
- - bug fix: added StripQuotes() call in GetFileInPath() function when
- no path was found.
- - bug fix: changed code to removed CurrentWindow variable to fix
- problems with rescaning the correct window after extraction.
-
-
- AddFilesLhA.rexx
- ~~~~~~~~~~~~~~~~
-
- 40.1 - initial version. I said, "What the hell!", might as well be able to
- add and delete files from the archive as well as extract them...
-
- 40.2 - added code to get the path to the LhA archive from the directory
- window.
-
- 40.3 - added TopText call and moved "Busy on" call before requester.
-
- 40.4 - added code to allow the user to create a new archive.
- - added option to recurse subdirectories.
-
- 40.5 - found out that LhA doesn't like certain characters in the file names
- it uses to add. Added function to change these to wildcards.
-
- 40.6 - added code to list a new archive after creation.
-
- Release 40.2
- ------------
-
- 40.7 - added code to use a selected LhA archive file if no LhA buffer
- is found.
- - added code to allow adding of files/dirs with spaces in their names.
- - added Quote() and StripQuotes() functions.
-
-
- DelFilesLhA.rexx
- ~~~~~~~~~~~~~~~~
-
- 40.1 - initial version
-
- 40.2 - changed the way DelFilesLhA.rexx called ListLhA.rexx as I was
- getting some *very* impressive crashes (continuous yellow screen
- upon reboot!) via 'call ListLhA.rexx'.
- - moved the code to restore DOpus's requester button text from the
- CleanUp function as I don't think it was hitting it.
-
- 40.3 - added code to get the path to the LhA archive from the directory
- window.
-
- 40.4 - added TopText call and moved "Busy on" call before confirmation
- requester.
- - added code to see if the archive is empty after the delete. If
- it is, the user is given the option of deleting the empty archive.
-
- 40.5 - added Busy on call after Request as it seems DOpus turns Busy off
- after the Request.
-
- 40.6 - found out that LhA doesn't like certain characters in the file names
- it uses to delete. Added function to change these to wildcards.
- - added check to see if the LhA archive is empty to begin with, if
- so the user is given the option of deleting it.
-
- 40.7 - added code to check the other buffer window if no archive is
- detected in the current window.
-
- Release 40.2
- ------------
-
- 40.8 - removed display update while created the file list for speed.
- - added code to delete all files if no files are selected. User must
- confirm the action.
- - added code to ask the user if they want to delete the archive when
- no files are selected (asked if you wish delete all). This allows
- quick deleting of the archive.
- - added code to ask the user if they wish to delete the selected
- LhA archive if no LhA buffer exists. (checks for proper extension)
- - added code to check if the file is a directory entry. If it is, the
- user is asked if they wish to delete the directory and all files
- within the directory.
- - bug fix: added quotes to name of parent directory to allow the
- restoration of a parent directory with spaces in the name.
- - added flag to skip asking user if they want to delete the archive
- after relisting it if they already said no.
-
-
- SelectFilesLhA.rexx
- ~~~~~~~~~~~~~~~~~~~
-
- 40.1 - initial version
-
- 40.2 - added code to call GetFileSizesLha.rexx after file selection to
- show the totals.
- - added ScrollToIndex call so user sees the selection process.
-
- 40.3 - added TopText call and moved "Busy on" call before the string
- requester.
- - added special pattern "*" to select all files
-
- Release 40.2
- ------------
-
- 40.4 - added new special case patterns "" and "~". Also added check to
- see if any files are selected before calling GetSizesLhA to
- avoid possible error message from that script.
- - added code to do proper pattern matching using the DOpus command
- PatternMatch (somehow missed this command before!)
-
-
- RestoreLhADir.rexx
- ~~~~~~~~~~~~~~~~~~
-
- 40.1 - initial version
-
- 40.2 - added code to check the other buffer window as well.
-
- 40.3 - added code to re-highlight the LhA archive file after the
- directory has been re-scanned.
-
- Release 40.2
- ------------
-
- 40.4 - bug fix: added quotes to name of parent directory to allow the
- restoration of a parent directory with spaces in the name.
-
-
- ViewLhAFile.rexx
- ~~~~~~~~~~~~~~~~
-
- Release 40.2
- ------------
-
- 40.1 - initial version. Thanks to Reto Thoma for the suggestion, this
- Buds for you :-)
- - added code to view a file ending in .guide with MultiView.
- - added code for many different file types including:
- DOC README MAN TEXT TXT IFF HAM PIC JPG JPEG JFIF GIF JIF INFO
- SND 8SVX ME MPG MPEG ANIM
- - added a default viewer case (hex viewer)
- - added a signal on failure trap to catch situation where the archive
- is corrupt, but was listed successfully.
- - added code to extract file with full path and then delete the full
- path when done to get around problem where several files in the
- archive have the same name and using the '-x0 e ' LhA options.
- - now display the name of the file being extracted.
- - added Quote() function to solve problems when dirs/files have
- spaces in them.
- - added BRUSH to files types (IFFViewer)
- - added ILBM to file types (IFFViewer)
-
-
- PrintLhAFiles.rexx
- ~~~~~~~~~~~~~~~~~~
-
- Release 40.2
- ------------
-
- 40.1 - initial version (last minute!)
- - added code to check if any files are selected, if not don't
- bother asking to print them.
-
-
- LhaHandler.rexx
- ~~~~~~~~~~~~~~~
-
- Release 40.2
- ------------
-
- 40.0 - initial test version.
-
- 40.1 - found problem preventing any usefulness of this CustomHandler
- - added code to view a file on double-click
- - added code to extract a file on click-m-click
- - added code to use new env: options for restoring (or not)
- paths from the archive.
- - added code to allow input to the LhA program to confirm actions
- such as overwriting.
-
- StopLhAHandler.rexx
- ~~~~~~~~~~~~~~~~~~~
-
- Release 40.2
- ------------
-
- 40.1 - initial version
-
-
-
- Author
-
-
- Contacting the Author
- ~~~~~~~~~~~~~~~~~~~~~
-
-
- If you have any comments, suggestions, gripes, or God forbid... bugs,
- Please feel free to contact me at the following places:
-
-
- Snail-Mail: Geoff Seeley
- 1240 Margaret Place,
- Duncan, British Columbia
- Canada
- V9L 4T6
-
-
- E-Mail: geoff@softwords.bc.ca (InterNet)
-
-
-
- The Furture
-
-
- Possible Future Enhancements
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
- - use DOpus' file classes to determine viewer to use in ViewLhAFiles
- script.
- - improve the configuration of the scripts
- - compile the scripts with the ARexx compiler for speed (Can someone out
- there do this please???)
- - create non-commented versions for speed
- - add support for ZIP, TAR, and other archivers.
- - improve the creation of an archive (maybe make "CreateLhA"?)
- - allow operations between archives (ie. list two archives, move files
- between them)
- - allow easier point and click? naming of the LhA archive (Suggested by
- Bill (bleath@BIX.com)
- - allow scripts to work with more than one running one of DOpus
- - add code to check the permissions of a archive file before modifying
- the archive.
-
-
-
- LhA Issues
-
-
- Input/Output with LhA
- ~~~~~~~~~~~~~~~~~~~~~
-
- Output from the LhA program will appear in a regular console window
- with a title of "LhA_Output".
-
- If the LhA program needs input from the user during operation, a console
- window titled "LhA_Input" will appear below the LhA_Output window. Input
- to LhA should be typed in this window and *NOT* in the LhA_Output window
- where the input prompt appears.
-
-
- Index
-
-
- Acknowledgements
- AddFilesLhA
- Author
- Bugs
- Copyrights
- DelFilesLhA
- ExtLhaFiles
- GetSizesLhA
- History
- Installation
- LhaHandler
- Lha Issues
- ListLhA
- Menu Options
- Preface
- PrintLhAFiles
- RestoreLhADir
- rexxsupport.library
- Script Operation
- SelectFilesLhA
- StopLhAHandler
- The Future
- ViewLhAFile
- What's New?
-
-
-